import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.SwingConstants;
import javax.swing.JList;
import java.awt.List;
import java.util.HashMap;
import java.util.HashSet;
/**
 * Fenêtre de consultation d'un ouvrage
 * Code du JFrame généré par Window Builder/Swing Designer.
 * @author IUT,  A.Culet 
 * @version 1.0
 */

public class VueRechercheMotTitre extends Vue {

	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField textFieldMotTitre;
	private List listeOuvrages;
	private List listeArticles;
	private Ouvrage _ouvrage;
	
	// pour que les boutons soient des attributs, il faut faire "convert local to field"
	private JButton buttonRech;
	private JButton buttonAnnuler;
	private JButton buttonFermer;
	private JButton buttonVoir;
	
	
	/**
	 * Create the frame.
	 */
	public VueRechercheMotTitre(Controleur controleur) {
		super(controleur);
		setTitle("Rechercher un ouvrage par mot du titre");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
		setBounds(100, 100, 412, 473);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lbltitre = new JLabel("Mots du titre");
		lbltitre.setHorizontalAlignment(SwingConstants.RIGHT);
		lbltitre.setBounds(8, 29, 100, 15);
		contentPane.add(lbltitre);
		
		textFieldMotTitre = new JTextField();
		textFieldMotTitre.setBounds(150, 27, 217, 19);
		contentPane.add(textFieldMotTitre);
		textFieldMotTitre.setColumns(10);
		
		buttonAnnuler = new JButton("Annuler");
		buttonAnnuler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueRechercheMotTitre.this);}
		});
		buttonAnnuler.setBounds(53, 79, 107, 25);
		contentPane.add(buttonAnnuler);
		
		buttonRech = new JButton("Rechercher");
		buttonRech.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			String mot =textFieldMotTitre.getText();
			//System.out.println(mot);
			getControleur().rechercheDocumentsMot(mot);	
			//getControleur().rechercheDocuments(getControleur().auteurSelec(listeAuteurs.getSelectedItems()));
			//setEtat(Vue.finale);		
			}
		});
		buttonRech.setBounds(260, 79, 107, 25);
		contentPane.add(buttonRech);
		
		JLabel lblAuteur1 = new JLabel();
		lblAuteur1.setHorizontalAlignment(SwingConstants.RIGHT);
		lblAuteur1.setBounds(18, 165, 100, 15);
		contentPane.add(lblAuteur1);
		
		JLabel lblOuvrage = new JLabel("Les ouvrages");
		lblOuvrage.setHorizontalAlignment(SwingConstants.RIGHT);
		lblOuvrage.setBounds(25, 187, 85, 15);
		contentPane.add(lblOuvrage);
		
		listeOuvrages = new List ();
		listeOuvrages.setBounds(150,180, 217, 80);		
		contentPane.add(listeOuvrages);
		
		buttonVoir = new JButton("Voir");
		buttonVoir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				_ouvrage = getControleur().ouvrageSelec(listeOuvrages.getSelectedItem());
				System.out.println(_ouvrage.getEditeur());
				System.out.println(_ouvrage.getTitre());
				getControleur().rechOuvRPA(_ouvrage.getIsbn());
				System.out.println(_ouvrage.getDateEdition());
				
			}
		});
		buttonVoir.setBounds(299, 266, 68, 25);
		contentPane.add(buttonVoir);
		
		JLabel lblArticle = new JLabel("Les articles");
		lblArticle.setHorizontalAlignment(SwingConstants.RIGHT);
		lblArticle.setBounds(12, 302, 85, 15);
		contentPane.add(lblArticle);
		
		listeArticles = new List ();		
		listeArticles.setBounds(150, 297, 217, 80);		
		contentPane.add(listeArticles);	
		
		buttonFermer = new JButton("Fermer");
		buttonFermer.setEnabled(false);
		buttonFermer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueRechercheMotTitre.this);}
		});
		buttonFermer.setBounds(150, 400, 100, 25);
		contentPane.add(buttonFermer);
			
		}
	
	
		
	public void alimenteOuvrages(Ouvrage ouv) {
		//listeOuvrages.clear();			
		listeOuvrages.add(ouv.getIsbn()+" "+ouv.getTitre()+" "+ouv.getEditeur()+" "+ESDate.ecrireDate (ouv.getDateEdition()));
		listeOuvrages.setEnabled(true);
		
	}
	
	public void alimenteArticles(Article art){
		listeArticles.add(art.getParution().getPeriodique().getIssn()+" "+art.getTitre()+" " +
				" "+art.getParution().getNum()+" "+art.getPageDebut());
		listeArticles.setEnabled(true);
			
	}
	/**
	 * définition des états de la fenêtre, cad des régions actives selon l'état
	 */
	public void setEtat (int etat){
		switch (etat) {
		case initiale: {			
			buttonAnnuler.setEnabled(true);
			buttonFermer.setEnabled(false);
			buttonVoir.setEnabled(false);
			break;
			}
		case inter1: {
			buttonRech.setEnabled(false);
			buttonAnnuler.setEnabled(false);
			buttonFermer.setEnabled(true);
			buttonVoir.setEnabled(true);			
			break;
			}
		
		}
	}
}
